\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{dim. févr. 26 15:28:23 CET 2012}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={OpenSSL - ca},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Application CA minimaliste. Peut être utilisé pour signer des requêtes de certificats et générer des CRL. Maintient également une base des certificats délivrés et leur status.},
CreationDate={D:20120226152823},
ModDate={D:20120226152823},
Keywords={PKI;sécurité;chiffrement;certificats}
}}
\begin{document}
 
\begin{center}
{\Huge OpenSSL - ca }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Application CA minimaliste. Peut être utilisé pour signer des requêtes de certificats et générer des CRL. Maintient également une base des certificats délivrés et leur status.}
 
\vspace{10mm}
 
\vspace{1cm}{\huge Options CA }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -config filename]{Spécifie le fichier de configuration à utiliser}
\item[\hspace{1mm} -name section]{Spécifie la section du fichier de configuration à utiliser}
\item[\hspace{1mm} -in filename]{Fichier source contenant une requête de certificat à signer}
\item[\hspace{1mm} -ss\_cert filename]{un certificat auto-signé à signer par la CA}
\item[\hspace{1mm} -spkac filename]{Un fichier contenant une clé publique signée Netscape, un challenge et des valeurs de champs assitionnels à signer par la CA.}
\item[\hspace{1mm} -infiles]{Si présent doit être la dernière option. Tous les arguments qui suivent sont traités comme des noms de fichier contenant des requêtes.}
\item[\hspace{1mm} -out filename]{Fichier de sortie. (défaut : stdout)}
\item[\hspace{1mm} -outdir directory]{Répertoire où placer les certificats de sortie. Le certificat sera nommé avec un numéro hexa et l’extension pem.}
\item[\hspace{1mm} -cert]{Fichier du certificat CA}
\item[\hspace{1mm} -keyfile filename]{La clé privée à utiliser pour signer la requête}
\item[\hspace{1mm} -key password]{Le mot de passe à utiliser pour chiffrer la clé privée}
\item[\hspace{1mm} -selfsign]{indique que les certificats délivrés doivent être signés avec la clé qui a servit à signer la requête (spécifié avec -keyfile). Les requêtes signées avec un certificat différent sont ignorés. si spkac, ss\_cert ou gencrl sont spécifiés, cette option est ignorée.}
\item[\hspace{1mm} -passin arg]{La source du mot de passe.}
\item[\hspace{1mm} -verbose]{mode verbeux}
\item[\hspace{1mm} -notext]{N’affiche pas la forme texte dans le fichier de sortie}
\item[\hspace{1mm} -startdate date]{Permet de définir la date de début au format YYMMDDHHMMSSZ (structure ASN1 UTCTime)}
\item[\hspace{1mm} -enddate date]{Permet de définir la date d’expiration au format YYMMDDHHMMSSZ (structure ASN1 UTCTime)}
\item[\hspace{1mm} -days arg]{Le nombre de jours pendant lesquels certifier ce certificat}
\item[\hspace{1mm} -md alg]{Le message digest à utiliser (md5 sha1 et mdc2)}
\item[\hspace{1mm} -policy arg]{Spécifie la stratégie CA à utiliser. C’est une section dans le fichier de configuration}
\item[\hspace{1mm} -msie\_hack]{Permet un fonctionnemnt avec les très vieux contrôle d’enrollement de certificat IE ’certenr3’.}
\item[\hspace{1mm} -preserveDN]{Normalement l’ordre du DN est le même que l’ordre des champs dans la section de stratégie. Avec cette option, l’ordre est le même que dans la requête}
\item[\hspace{1mm} -noemailDN]{Le DN d’un certificat peut contenir le champ email s’il est présent dans le DN de la requête ; cependantil est préférable d’avoir l’email dans l’extnsion altName. Avec cette option, le champs email est supprimé du sujet du certificat et définis dans les extensions si présent.}
\item[\hspace{1mm} -batch]{Dans ce mode tous les certificats sont certifiés automatiquement sans poser de questions.}
\item[\hspace{1mm} -extensions section]{La section du fichier de configuration contenant les extensions à ajouter quand un certificat est délivré. Sans extention, un V1 est créé, si une extension est présente, même vide, un v3 est créé.}
\item[\hspace{1mm} -extfile file]{Un fichier de configuration additionnel contenant les extensions à ajouter.}
\item[\hspace{1mm} -engine id]{Spécifie le type de moteur. peut être définis à default pour tous les algorithmes disponibles}
\item[\hspace{1mm} -subj arg]{Remplace le sujet dans la reque\textasciicircum te. doitêtre au format /type0=value0/type1=value1/type2=...}
\item[\hspace{1mm} -utf8]{Les valeurs dns les champs sont interprétés comme chaînes UTF-8 (par défaut en ASCII)}
\item[\hspace{1mm} -multivalue-rdn]{l’argument -subj est interprété comme RDN multivalué. ex : /DC=org/DC=OpenSSL/DC=users/UID=123456+CN=John Doe (sans cette option : 123456+CN=John Doe)}
\end{description}
 
\vspace{1cm}{\huge Options CRL }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -gencrl]{Génère une CRL basé sur les informations dans le fichier d’index}
\item[\hspace{1mm} -crldays num]{Nombre de jours avant la prochaine CRL. valeur placée dans le champ nextUpdate de la CRL.}
\item[\hspace{1mm} -crlhours num]{Nombre d’heure avant la prochaine CRL.}
\item[\hspace{1mm} -revoke filename]{Un nom de fichier contenant un certificat à révoquer.}
\item[\hspace{1mm} -crl\_reason reason]{Raison dela révocation. Peut être (unspecified, keyCompromise, CACompromise, affiliationChanged, superseded, cessationOfOperation, certificateHold ou removeFromCRL). Définis une raison de révocation va créer une CRL v2.}
\item[\hspace{1mm} -crl\_hold instruction]{Définis la raison de révocation à certificateHold et l’instruction doit etre un OID (pet être à holdInstructioNone (=obsolete), holdInstructionCallIssuer ou HoldInstructionReject)}
\item[\hspace{1mm} -crl\_compromise time]{Définis la raison de révocation keyCompromise et le temps au format YYYYMMDDHHMMSSZ.}
\item[\hspace{1mm} -crl\_CA\_compromise time]{Idem pour CACompromise}
\item[\hspace{1mm} -crlexts section]{Section dans le fichier de configuration contenant les extensions CRL à inclure. Sans extension, une CRL v1 st générée.}
\end{description}
 
\vspace{1cm}{\huge Options du fichier de configuration }
 
\
 
\hspace{1mm}  La section par défaut doit être nommée dans l’option default\_ca de la section ca (ou de la section par défaut).
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} oid\_file]{Spécifie le fichier contenant des oid additionnels, un par ligne.}
\item[\hspace{1mm} oid\_section]{Spécifie la section dans le fichier de configuration contenant les oid additionnels.}
\item[\hspace{1mm} new\_certs\_dir]{Idem à -outdir}
\item[\hspace{1mm} certificate]{idem à -cert}
\item[\hspace{1mm} private\_key]{idem à -keyfile}
\item[\hspace{1mm} RANDFILE]{un fichier utilisé pour lire et écrire des informations de nombre aléatoire.}
\item[\hspace{1mm} default\_startdate]{idem à -startdate}
\item[\hspace{1mm} default\_enddate]{idem à -enddate}
\item[\hspace{1mm} default\_crl\_hours]{idem à -crlhours}
\item[\hspace{1mm} default\_crl\_days]{idem à -crldays}
\item[\hspace{1mm} default\_md]{idem à -md}
\item[\hspace{1mm} database]{le fichier de données à utiliser}
\item[\hspace{1mm} unique\_subject]{à yes, les certificats doivent avoir un sujet unique}
\item[\hspace{1mm} serial]{Fichier texte contenant le prochain numéro de CRL en hexa à utiliser.}
\item[\hspace{1mm} x509\_extensions]{idem à -extensions}
\item[\hspace{1mm} crl\_extensions]{idem à -crlexts}
\item[\hspace{1mm} preserve]{idem à -preserveDN}
\item[\hspace{1mm} email\_in\_dn]{idem à -noemailDN}
\item[\hspace{1mm} msie\_hack]{idem à -msie\_hack}
\item[\hspace{1mm} policy]{idem à -policy}
\item[\hspace{1mm} name\_opt, cert\_opt]{Permettent au format utilisé d’afficher les détails du certificat lorsqu’il est demandé à l’utilisateur de confirmer la signature.}
\item[\hspace{1mm} copy\_extensions]{Détermine comment les extensions dans la requête sont manipulés. non spécifié ou à none, lesextensions sont ignorés. à copy, les extensions non encore présentes sont copiées dans le certificat. a copyall, toutes les extensions sont copiées en supprimant celles déjà présentes}
\end{description}
 
\vspace{1cm}{\huge Exemples }
 
\
 
\hspace{1mm} Signer une requête de certificat: \\
\hspace{1mm} \textbf{openssl ca -in req.pem -out newcert.pem} \\
\hspace{1mm} signer une requête e certificat, en utilisant les extensions de CA: \\
\hspace{1mm} \textbf{openssl ca -in req.pem -extensions v3\_ca -out newcert.pem} \\
\hspace{1mm} Générer une CRL: \\
\hspace{1mm} \textbf{openssl ca -gencrl -out crl.pem} \\
\hspace{1mm} signer plusieurs requêtes: \\
\hspace{1mm} \textbf{openssl ca -infiles req1.pem req2.pem req3.pem} \\
\hspace{1mm} Certifier un SPKAC Netscape: \\
\hspace{1mm} \textbf{openssl ca -spkac spkac.txt} \\
\hspace{1mm} exemple de fichier SPKAC (tronquée pour plus de clarté): \\
\hspace{1mm} \textbf{SPKAC=MIG0MGAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAn7PDhCeV/xIxUg8V70YRxK2A5} \\
\hspace{1mm} \textbf{CN=Steve Test} \\
\hspace{1mm} \textbf{emailAddress=steve@openssl.org} \\
\hspace{1mm} \textbf{0.OU=OpenSSL Group} \\
\hspace{1mm} \textbf{1.OU=Another Group} \\
 
\vspace{1cm}{\huge Exemple de section ca dans la configuration }
 
\
 
{\ttfamily
\texttt{[} ca \texttt{]}\\ default\_ca = CA\_default \# Section ca par défaut\\ \hspace{2mm}\\ \texttt{[} CA\_default \texttt{]}\\ dir = ./demoCA \# Répertoire de base\\ database = \$dir/index.txt \# fichier d’index\\ new\_certs\_dir = \$dir/newcerts \# Répertoire pour les nouveaux certificats délivrés\\ \hspace{2mm}\\ certificate = \$dir/cacert.pem \# Certificat racine\\ serial = \$dir/serial \# fichier serial\\ private\_key = \$dir/private/cakey.pem\# Clé privée de la ca\\ RANDFILE = \$dir/private/.rand \# Fichier de nombres aléatoire\\ \hspace{2mm}\\ default\_days = 365 \# Durée de validité du certificat\\ default\_crl\_days= 30 \# Durée de la CRL\\ default\_md = md5 \# md à utiliser\\ \hspace{2mm}\\ policy = policy\_any \# Stratégie par défaut\\ email\_in\_dn = no \# Ne pas ajouter le mail dans le DN\\ \hspace{2mm}\\ name\_opt = ca\_default \# Option d’affichage du nom du sujet\\ cert\_opt = ca\_default \# Option d’affichage du certificat\\ copy\_extensions = none \# Ne pas copier les extensions depuis la requête\\ \hspace{2mm}\\ \texttt{[} policy\_any \texttt{]}\\ countryName = supplied\\ stateOrProvinceName = optional\\ organizationName = optional\\ organizationalUnitName = optional\\ commonName = supplied\\ emailAddress = optional\\
}
\vspace{8mm}
 
\vspace{1cm}{\huge Variables d'environnement }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} OPENSSL\_CONF]{Réflète l’emplacement du fichier de configuration maître (idem à -config)}
\end{description}
\end{flushleft}
\end{document}
